tensorflow教程一:安装和jupyter notebook的使用

您所在的位置:网站首页 jupyter notebook安装 tensorflow教程一:安装和jupyter notebook的使用

tensorflow教程一:安装和jupyter notebook的使用

#tensorflow教程一:安装和jupyter notebook的使用| 来源: 网络整理| 查看: 265

关于tensorflow cpu版本的安装没有什么可以说的,比较重要的是gpu版本的安装。这个我在网上看了很多教程都不太靠谱,其中走了很多弯路,首先这个东西用anaconda绝对是比较简单安装的,不过前提是你不要去瞎折腾。我搞这个东西就搞了好久。奉劝你们不要轻易去尝试网上的一些教程尤其是csdn。我觉得b站的教程还是挺靠谱的。

这个是用conda一条指令安装。

这个讲得比较详细。还有文字教程:

我最后卸载anaconda重装,最后的步骤和第一个差不多,如果是自己安装CUDA和cudnn就需要注意对应关系。gpu 1.14.0是可以用CUDA Toolkit 10.0的,这个我用的就是。

在https://www.tensorflow.org/install/source_windows可以找到对应关系。cudnn下载需要登陆一下,用微信就可以。我这里就不再赘述我的痛苦经历了。为什么不安cpu版?太慢了啊。我的GPU 虽然不是太好,也就是1050,不过也很快。

按完以后一般用一段代码测试。

这个主要是加载库,链接库会比较慢,用过visual studio的都知道,第一次运行都是很慢的。

第二次就会快。

安装过程中有什么问题可以私信我,我能解决的一定都给解决。

Jupyter notebook

前面曾经使用过它,那我们为什么要用它呢?这个参考http://m.elecfans.com/article/687743.html

如果每个数据科学家都应该使用或必须使用一种工具,毫无疑问,它就是Jupyter Notebook(曾用名iPython Notebook)。Jupyter Notebook是一个交互式笔记本,它功能强大,支持40多种编程语言,可共享,并提供在同一环境中构建可视化应用的服务。

数据科学家可以在上面创建和共享自己的文档,从实现代码到全面报告,Jupyter Notebook大大简化了开发者的工作流程,帮助他们实现更高的生产力和更简单的多人协作。也正是因为如此,它一直以来都是数据科学家们最喜欢的工具之一。

本文将全面介绍笔记本的安装、操作方法,并深入探讨它的特性和优势。当你读完全文后,我们希望你能找到用Jupyter Notebook帮助自己实现机器学习项目的灵感。

1. 什么是Jupyter Notebook?

Jupyter Notebook是一个开源的Web应用程序,旨在方便开发者创建和共享代码文档。

它提供了一个环境,用户可以在里面写代码、运行代码、查看结果,并在其中可视化数据。鉴于这些优点,Jupyter Notebook成了数据科学家眼里的一款人见人爱的工具,它能帮助他们便捷地执行各种端到端任务,如数据清洗、统计建模、构建/训练机器学习模型等。

而对于初学者,Jupyter Notebook也独具魅力。它的一个特色是允许把代码写入独立的cell中,然后单独执行。这样做意味着用户可以在测试项目时单独测试特定代码块,无需从头开始执行代码。虽然其他的IDE环境(如R 0...Studio)也提供了这种功能,但就个人使用情况来看,Jupyter Notebook的单元结构是设计的最好的。

这个笔记本的优势还体现在灵活性和交互性上。Jupyter Notebook支持的编程语言数量高达40余种,除了最基础的Python,它还允许用户在上面运行R语言和SQL等语言。由于它比IDE平台更具交互性,用户也更乐于在各种教程中用它展示代码。

2. 如何安装Jupyter Notebook?

Jupyter Notebook原来也叫iPython Notebook,顾名思义,它和Python关系紧密。如果要在PC上安装笔记本,首先你要确保自己已经安装了Python(2.7/3.3或更高),这是必备条件。

Anaconda

官方在文档中强烈建议新用户用Anaconda打包安装Python和Anaconda——所谓懒人方法,小白必备。其实除了提到的两个工具,Anaconda还包含数据科学和机器学习中经常需要用到的各种软件包,只需下载、解压、安装,所有工具就都一步到位了。

下载地址:https://jupyter.readthedocs.io/en/latest/install.html

pip

如果你很欣赏自己,或者因为某些因素就是不想用Anaconda,你也可以用pip。当然首先,你得确保自己的机器上有pip的最新版本。

#Linux和OSX

pip install -U pip setuptools

#Windows

python -m pip install -U pip setuptools

然后,安装Jupyter Notebook:

#Python2用户看这里

pip install jupyter

#Python3用户不要跑

pip3 install jupyter

如果还是有疑问,请看官方文档(英)、官方文档翻译(中)。

3. 入门

安装完成后,如果要运行Jupyter Notebook,你只需在控制台输入以下命令:

jupyter notebook

你会看到笔记本打开了你的默认浏览器,网址为http:// localhost:8888/tree。

一般情况下,当你输入命令行后,控制台会出现一行“The Jupyter Notebook is running at……”,如果浏览器因为某些原因无法打开,你就需要复制这个URL,手动打开相应网址。

当笔记本打开后,它的顶部有Files、Running和Clusters三个选项。其中Files中列出了所有文件,Running显示了你已经打开的终端和笔记本,Clusters则是IPython parallel提供的。

如果你想新建一个笔记本,单击面板右侧的“New”,它会跳出4个选项:

Python 3

Text File

Folder

Terminal

选择Text File后,你会得到一个空白的页面。它相当于一个文本编辑器(类似于Ubuntu上的应用程序),你可以在上面输入任何字母、单词和数字,所以选择好编程语言后,你是可以在上面写脚本的。此外,它还提供查找和替换文件中的单词的功能。

选择Folder后,你其实是在编辑文件夹列表。你可以创建一个新文件夹,把所需文档放进里面,或者修改它的名称、直接把它删除。

而Terminal的工作方式和Mac、Linux计算机上的Terminal一样,都是在Web浏览器中创建终端支持。只需在终端输入Python,一个Python脚本就写好了。

由于本文重点介绍的是笔记本,下面我们会重点展示新建“Python 3”后的结果:

导入最常见的Python库来启动笔记本,如pandas和numpy。在代码上方的菜单中,那些图标依次表示添加、编辑、剪切、向上移动cell、向下移动cell、运行代码、停止运行和撤销。当然也有一些默认的快捷键:

https://blog.csdn.net/qq_39973546/article/details/79777992

命令模式 (按键 Esc 开启)

Enter : 转入编辑模式

Shift-Enter : 运行本单元,选中下个单元

Ctrl-Enter : 运行本单元

Alt-Enter : 运行本单元,在其下插入新单元

Y : 单元转入代码状态

M :单元转入markdown状态

R : 单元转入raw状态

1 : 设定 1 级标题

2 : 设定 2 级标题

3 : 设定 3 级标题

4 : 设定 4 级标题

5 : 设定 5 级标题

6 : 设定 6 级标题

Up : 选中上方单元

K : 选中上方单元

Down : 选中下方单元

J : 选中下方单元

Shift-K : 扩大选中上方单元

Shift-J : 扩大选中下方单元

A : 在上方插入新单元

B : 在下方插入新单元

X : 剪切选中的单元

C : 复制选中的单元

Shift-V : 粘贴到上方单元

V : 粘贴到下方单元

Z : 恢复删除的最后一个单元

D,D : 删除选中的单元

Shift-M : 合并选中的单元

Ctrl-S : 文件存盘

S : 文件存盘

L : 转换行号

O : 转换输出

Shift-O : 转换输出滚动

Esc : 关闭页面

Q : 关闭页面

H : 显示快捷键帮助

I,I : 中断Notebook内核

0,0 : 重启Notebook内核

Shift : 忽略

Shift-Space : 向上滚动

Space : 向下滚动

编辑模式 ( Enter 键启动)

Tab : 代码补全或缩进

Shift-Tab : 提示

Ctrl-] : 缩进

Ctrl-[ : 解除缩进

Ctrl-A : 全选

Ctrl-Z : 复原

Ctrl-Shift-Z : 再做

Ctrl-Y : 再做

Ctrl-Home : 跳到单元开头

Ctrl-Up : 跳到单元开头

Ctrl-End : 跳到单元末尾

Ctrl-Down : 跳到单元末尾

Ctrl-Left : 跳到左边一个字首

Ctrl-Right : 跳到右边一个字首

Ctrl-Backspace : 删除前面一个字

Ctrl-Delete : 删除后面一个字

Esc : 进入命令模式

Ctrl-M : 进入命令模式

Shift-Enter : 运行本单元,选中下一单元

Ctrl-Enter : 运行本单元

Alt-Enter : 运行本单元,在下面插入一单元

Ctrl-Shift-- : 分割单元

Ctrl-Shift-Subtract : 分割单元

Ctrl-S : 文件存盘

Shift : 忽略

Up : 光标上移或转入上一单元(方向上键)

Down :光标下移或转入下一单元(方向下键)

这个下拉的列表提供了四个选项:

Code:这个不言自明,就是你写代码的地方;

Markdown:非常常见的轻量级标记语言,用来为代码添加注释和结论;

Raw NBConvert:一个命令行工具,可以把你的笔记本转换成另一种格式,如HTML;

Heading:添加标题,使你的文档看起来更干净整洁,它现在已经变成Markdown里的一个语法,用两个#表示。

4. Jupyter Notebook的魔术命令

作为iPython的继承者,开发人员已经在Jupyter Notebook中加入预定义的魔术命令(magic function)。这是一种增加便捷性和互动性的工具,如果要查看命令列表,你可以输入(注:通常不需要“%”):

%lsmagic

当看到那一串函数列表时,也许你能从中认出几张老面孔,如%clear、%autosave、%debug和%mkdir。只要你以前写过代码,这些函数就几乎是不可避免的。

在Jupyter Notebook中,魔术命令有两种运行方式,一是Line-wise,而是Cell-wise。顾名思义,Line-wise就是当你想执行一个命令行的时候需要用到的,而Cell-wise面向的就不单单是一行了,它作用的是整个cell的代码块。

为了区分两种运行方式,如果是Line-wise,所有命令必须以%字符打头;如果是Cell-wise,则用%%。

Line-wise:

%time a = range(10)

Cell-wise:

%%timeit a = range (10)

min(a)

以上只是两个最简单的示例,你可以试着自己运行这些命令,看看其中有什么区别。

这里稍微说一下,In[]中的数字是执行的次序,如果中括号里面是*,说明这个单元(cell)正在运行,如果中括号里什么都没有,说明还没有运行,如果你确实运行了,而这个cell还是空的,很可能是和错误(kernel  error),这很可能卸载anaconda重装或者重装python导致解释器的路径发生变化导致的,修复方法参考:

https://blog.csdn.net/sinat_40730205/article/details/80843775

首先使用jupyter kernelspec list查看安装的内核和位置

进入安装内核目录打开kernel.jason文件,查看Python编译器的路径是否正确

如果不正确python -m ipykernel install --user重新安装内核,如果有多个内核,如果你使用conda create -n python2 python=2,为Python2.7设置conda变量,那么在anacoda下使用activate pyhton2切换python环境,重新使用python -m ipykernel install --user安装内核

重启jupyter notebook即可

一般修改kernel.json就可以解决。如果解决了,文件右上角会出现一个圈。

5. 不仅限于Python

之前也提到了,Jupyter Notebook的成功离不开它的灵活性,虽然Python在数据科学和机器学习中都占局主导地位,但对于数据分析任务,其他语言也有各种各样的特色和优势,比如R语言的'ggplot2'软件包就非常好用。在这一点上,Jupyter Notebook的态度是开放的。

如果想在Jupyter Notebook中启用R,你需要先去GitHub上下载'IRKernel'(R的专用kernel),然后按以下8个步骤依次执行(附图解地址):

步骤一:用Anaconda安装Jupyter Notebook;

步骤二:完成下载后,打开Anaconda命令提示符;

步骤三:输入ipython notebook新建ipython笔记本

步骤四:用conda update ipython-notebook这个命令行更新笔记本;

步骤五:输入conda install -c r ipython-notebook r-irkernel安装IRkernel;

步骤六:用R.exe打开R;

步骤七:输入install.packages(c('rzmq','repr','IRkernel','IRdisplay'), repos = 'http://irkernel.github.io/', type = 'source')安装必要软件包;

步骤八:输入IRkernel::installspec()后再输入quit(),完成操作。

如果是Julia用户,你也可以在Jupyter Notebook中“畅所欲言”。考虑到篇幅因素,有需要的读者请前往www.analyticsvidhya.com/blog/2017/10/comprehensive-tutorial-learn-data-science-julia-from-scratch/查看图文攻略。

和R语言一样,JavaScript用户也需要去Github先下载‘IJavascript’ kernel:github.com/n-riesco/ijavascript。文档里已经明确写出了安装kernel所需的步骤,但要注意的是,记得先装Node.js和npm,这是大前提!

https://github.com/jupyter/jupyter/wiki/Jupyter-kernels

有一些支持的核,我们看到

c++需要xeus-cling。

看了一个安装c++内核的:

https://www.learnopencv.com/xeus-cling-run-c-code-in-jupyter-notebook/

失败了,windows上jupyter notebook对于c++的支持还是差了一些。好吧,sublime还有存在的价值。

6. Jupyter Notebook的交互式控制面板

在添加小部件前,你需要先导入小部件包:

from ipywidgets import widgets

小部件的基本类型是典型的基于输入和按钮的文本输入。你可以参考下面这幅动图,了解交互式小部件的外观:

这种交互式也是jupyter notebook的一种优势。

7. 快捷键

既然Jupyter Notebook的主打优势是便捷,那它自然少不了方便操作的快捷键。事实上,当你想运行任意代码块时,只需按下Ctrl + Enter就可以了。

下面是本文挑选的一些实用快捷键,有需要的读者可以视情况逐个阅读+尝试,如果今后你会经常用到Jupyter Notebook,那不会这些组合键的你就几乎已经是条咸鱼了。

Jupyter Notebook提供了两种不同的键盘输入模式——Command和Edit。其中Command模式是将键盘和计算机命令绑定在一起,这时单元框线是灰色的(左侧蓝色粗线)。Edit模式允许你将文本(或代码)键入活动单元,这时单元框线是绿色的。

用Esc和Enter分别在Command和Edit模式之间跳转。

更多快捷键介绍(中文):blog.csdn.net/lawme/article/details/51034543

这个就是上面的网页。

8. 有用的扩展

添加扩展是提高Jupyter Notebook效率的一种非常有效的方式,那么安装和使用扩展哪家强?这里我们推荐Nbextensions。

先是安装(pip):

pip install jupyter_contrib_nbextensions

安装关联的JavaScript和CSS文件:

jupyter contrib nbextension install --user

完成此操作后,你会在Jupyter Notebook主页顶部看到一个'Nbextensions'选项卡。

顺便说一下jupyter的主页在哪里:

一般在

这种东西放在C盘还是不好的。考虑换个地方。参考https://blog.csdn.net/hhl_csdn/article/details/68950917

重启就来到了设置的路径

默认浏览器也是可以换的,不过我觉得谷歌挺好的。

想换的可以看看https://blog.csdn.net/tigerking1017/article/details/78782280

如果要启用一个扩展,只需点击来激活。下面是4个比较有用的扩展。

Code prettify:它可以让你的代码更美观。

我的jupyter notebook太新了,不兼容。

Printview:生成预览,新增的按钮叫jupyter nbconvert。

Scratchpad:生成一个实验环境(副本)跑代码,不会对笔记本代码造成影响。

下面都会有使用说明。

Table of Contents (2):抓取所有标题,并显示在浮动窗口中。效果

这是重装了jupyter notebook5展示的效果

此外,小编也曾经写过一篇《Top 5:五大最实用的Jupyter Notebook扩展插件》,介绍了另外5种好用的扩展,有兴趣的读者可以一起看一看。

上面的都和我的新版本jupyter notebook不兼容。。。。。

9. 保存和共享你的笔记本

这是Jupyter Notebook中最重要和最棒的功能之一。有过写博客经历的读者也许知道这种痛,当你一腔热血想把自己的成果分享给别人时,可能代码格式还没转完你就放弃了。大多数笔记本都采用json格式,它不是很适合共享,也不利于在博客中发布不同的单元块。

但Jupyter Notebook不一样,点击进入“file”后,你会看到一个“Download as”:

看到这7个选项后你就很开心了,其中最常用的是.ipynb文件。你也可以用nbconvert选项手动将笔记本转换为不同的格式,如HTML和PDF。

此外,你还可以使用jupyterhub,它允许你在其服务器上托管笔记本并与多个用户共享。许多顶尖的研究项目都把这作为协作方式。

10. JupyterLab

JupyterLab是今年2月推出的一个工具,从某种程度上来说,它是Jupyter Notebook的一个发展——拥有同样的组件,但允许更灵活和更强大的项目工作方式。换句话说,它的用户体验更好。

JupyterLab的特色是允许用户在一个窗口内安排笔记本、终端、文本文件和输出的工作区,这个MATLAB很像。你可以把窗口拖到你想要的位置,也可以通过实时预览编辑常用文件格式,如Markdown、CSV和JSON,实时查看项目进展。

我们可以通过这个网址直接进入lab。而notebook不能

他需要:

不过我试了试lab,感觉有一些bug。就还是先用notebook吧,

11. 实践和技巧

虽然自己钻研很有趣,但无论是学习还是工作,大部分时候你是在一个团队中工作的。在这种情况下,你要规范自己的操作和实践,确保笔记本中的代码和注释都是正确的,方便其他人阅读、理解。以下是一些实践指标,仅供参考:

对每个程序员来说最重要的事:要好好注释!

确保你保存了代码文档。

形成一套命名体系,并在实践中落到实处,方便自己和他人理解。

在刚开始的时候导入所需的库,并在旁边注释导入目的。

确保代码行距合适,你也不想别人因为看不懂你的循环和函数疯掉,对吧?

当代码越来越多时,隐藏不重要代码,确保干净整洁。

此外,当你需要把成果演示给别人看时(是的你又要做该死的PPT了),你是可以偷懒直接在Jupyter Notebook里做演示的。

找到“View”,点开其中的“Cell Toolbar”,然后是“Slideshow”。每个代码块都在右侧显示一个名为“Slide Type”的下拉选项:

具体效果如何,请自己尝试。

值得注意的是如果你在主页看到文件变绿,说明它有过改动。

就会在文件夹里面出现一个checkpoint。感觉很像git。

提醒一点

每当改变的时候一定要切换到命令模式按s。

点击文件中的revert to checkpoint。

和git不同的是,这个操作不可逆。

看到输出的结果还在,不过代码没了。

https://blog.csdn.net/DataCastle/article/details/78890469

一些魔法函数:

注意这些命令是在Python kernel中适用的,其他 kernel 不一定适用

还是安装几个有用的插件:https://mp.weixin.qq.com/s?__biz=MzI3ODkxODU3Mg%3D%3D&mid=2247485697&idx=2&sn=cfd494920bc59c62e192ee475bc01b9d&chksm=eb4eedc2dc3964d40a6df962cde5fdfc6ccd2cbb88c423b24d479754b992e5430cdeebea9da4

pip install jupyter_nbextensions_configurator jupyter_contrib_nbextensions

jupyter contrib nbextension install --user

jupyter nbextensions_configurator enable --user

更多配置细节,请前往jupyternbextensionsconfigurator的github。

1.Collapsible headings

这个扩展在大型Notebook中非常有用,可折叠的标题能帮你收起/放下Notebook中的某些内容,使整个页面看起来更干净整洁。

这个还是不能用在jupyter 6上,没办法,我重新下了一个jupyter notebook5.7.8。

2.Notify

这是Jupyter Notebook中的通知机制,有时如果需要跑一些耗时较久的任务,你会把它放在一边自己去做别的事,而Notify功能就能在任务处理完后及时向你发送通知。

这个真的是很有用了。需要注意的是,如果你想启用通知功能,首先你要勾选Notify扩展,其次再点击按钮正式启动。你选择的时间是Jupyter Notebook运行的最短时间,到点后它会向你发送通知。另外,请确保这个过程中Jupyter Notebook在浏览器中处于被打开状态。

3.Code folding

在Jupyter Notebook中,你能折叠的不只有标题,还有代码。

4.tqdm_notebook

这事实上不是Notebook原有的插件。tqdm原本是一个Python模块,它可以为循环代码显示执行进度条,但有时它无法在Jupyter Notebook上工作。几天前,Jupyter Notebook新加入了tqdm_notebook扩展,从此你就无需再为进度条担忧了,

tqdm是一个包。参考:

https://blog.csdn.net/weixin_41596463/article/details/86594252

和https://www.cnblogs.com/feffery/p/10343544.html

5.%debug

这也不是Notebook原生的。它最初是IPython magic的一个命令,支持两种激活调试器的方式:一是在执行代码之前激活调试器,二是在验尸模式下激活调试器。简而言之,就是当代码出现异常后,输入%debug可以直接激活调试器跳到出现错误的地方,而且你还可以检查前后代码情况。它实现了即时调试+快速迭代,更多细节可以参考Radek Osmulski的推文。

6.一些小型扩展和特殊技巧

%lsmagic:执行%lsmagic,它会列出所有可用的IPython magics。

Zen mode extension:隐藏活动状态栏,方便你把注意力集中在代码上。

Execute time extension:显示运行的时间。

autoreload:无需退出Jupyter Notebook就能动态修改代码。它的具体操作是:

%load_ext autoreload

%autoreload 2

jupyter还有一些技巧,参考:

https://blog.csdn.net/create115721/article/details/79243641

高手们都知道,快捷键可以节省很多时间。Jupyter在顶部菜单提供了一个快捷键列表:Help > Keyboard Shortcuts 。每次更新Jupyter的时候,一定要看看这个列表,因为不断地有新的快捷键加进来。另外一个方法是使用Cmd + Shift + P (  Linux 和 Windows下 Ctrl + Shift + P亦可)调出命令面板。这个对话框可以让你通过名称来运行任何命令——当你不知道某个操作的快捷键,或者那个操作没有快捷键的时候尤其有用。这个功能与苹果电脑上的Spotlight搜索很像,一旦开始使用,你会欲罢不能。

Esc + F 在代码中查找、替换,忽略输出。

Esc + O 在cell和输出结果间切换。

选择多个cell: 

Shift + J 或 Shift + Down 选择下一个cell。

Shift + K 或 Shift + Up 选择上一个cell。

一旦选定cell,可以批量删除/拷贝/剪切/粘贴/运行。当你需要移动notebook的一部分时这个很有用。

Shift + M 合并cell. 

有一点已经众所周知。把变量名称或没有定义输出结果的语句放在cell的最后一行,无需print语句,Jupyter也会显示变量值。当使用Pandas DataFrames时这一点尤其有用,因为输出结果为整齐的表格。 这个和在控制台里是一样的,实际上ipython就是用的控制台。

鲜为人知的是,你可以通过修改内核选项ast_note_interactivity,使得Jupyter对独占一行的所有变量或者语句都自动显示,这样你就可以马上看到多个语句的运行结果了。

In [1]: from IPython.core.interactiveshell import InteractiveShell

       InteractiveShell.ast_node_interactivity = "all"

In [2]: from pydataset import data

       quakes = data('quakes')

       quakes.head()

       quakes.tail()

Out[2]:

       lat long    depth   mag stations

       1   -20.42  181.62  562 4.8 41

       2   -20.62  181.03  650 4.2 15

       3   -26.00  184.10  42  5.4 43

       4   -17.97  181.66  626 4.1 19

       5   -20.42  181.96  649 4.0 11

Out[2]:

       lat long    depth   mag stations

       996 -25.93  179.54  470 4.4 22

       997 -12.28  167.06  248 4.7 35

       998 -20.13  184.20  244 4.5 34

       999 -17.40  187.80  40  4.5 14

       1000    -21.59  170.56  165 6.0 119

如果你想在各种情形下(Notebook和Console)Jupyter都同样处理,用下面的几行简单的命令创建文件~/.ipython/profile_default/ipython_config.py即可实现:

c = get_config()

# Run all nodes interactively

c.InteractiveShell.ast_node_interactivity = "all"

也就是修改最后一个就可以,没有就添加。

这个重启了之后也不是很有用。还是得导入

在Help 菜单下,你可以找到常见库的在线文档链接,包括Numpy,Pandas,Scipy和Matplotlib等。 

另外,在库、方法或变量的前面打上?,即可打开相关语法的帮助文档。

In [3]: ?str.replace()

       Docstring:        S.replace(old, new[, count]) -> str        Return a copy of S with all occurrences of substring        old replaced by new.  If the optional argument count is        given, only the first count occurrences are replaced.        Type:      method_descriptor

在notebook里作图,有多个选择: 

- matplotlib (事实标准)(http://matplotlib.org/),可通过%matplotlib inline 激活,https://www.dataquest.io/blog/matplotlib-tutorial/- %matplotlib notebook 提供交互性操作,但可能会有点慢,因为响应是在服务器端完成的。 - mpld3(https://github.com/mpld3/mpld3) 提供matplotlib代码的替代性呈现(通过d3),虽然不完整,但很好。 - bokeh(http://bokeh.pydata.org/en/latest/) 生成可交互图像的更好选择。 - plot.ly(https://plot.ly/) 可以生成非常好的图,可惜是付费服务。

上文提到的%matplotlib inline 是Jupyter Magic命令之一。

不必重启jupyter服务器进程,也可以管理notebook的环境变量。有的库(比如theano)使用环境变量来控制其行为,%env是最方便的途径。

In [55]:    # Running %env without any arguments            # lists all environment variables            # The line below sets the environment            # variable OMP_NUM_THREADS            %env OMP_NUM_THREADS=4

           env: OMP_NUM_THREADS=4

%run 可以运行.py格式的python代码——这是众所周知的。不那么为人知晓的事实是它也可以运行其它的jupyter notebook文件,这一点很有用。 

注意:使用%run 与导入一个python模块是不同的。

In [56]:    # this will execute and show the output from            # all code cells of the specified notebook            %run ./two-histograms.ipynb

 

这种运行和脚本运行是一样的,单独列出变量名不会打印。

该操作用外部脚本替换当前cell。可以使用你的电脑中的一个文件作为来源,也可以使用URL。

In [ ]:     # Before Running            %load ./hello_world.py In [61]:    # After Running            # %load ./hello_world.py            if __name__ == "__main__":                print("Hello World!")

%store 命令可以在两个notebook文件之间传递变量。

In [62]:    data = 'this is the string I want to pass to different notebook'            %store data            del data # This has deleted the variable

           Stored 'data' (str)

现在,在一个新的notebook文档里……

In [1]: %store -r data        print(data)

       this is the string I want to pass to different notebook

当然源文档里也能用。

不加任何参数, %who 命令可以列出所有的全局变量。加上参数 str 将只列出字符串型的全局变量。

In [1]: one = "for the money"        two = "for the show"        three = "to get ready now go cat go"        %who str

       one  three   two

使用%%writefile magic可以保存cell的内容到外部文件。 而%pycat功能相反,把外部文件语法高亮显示(以弹出窗方式)。

In [7]: %%writefile pythoncode.py        import numpy        def append_if_not_exists(arr, x):            if x not in arr:                arr.append(x)        def some_useless_slow_function():            arr = list()            for i in range(10000):                x = numpy.random.randint(0, 10000)                append_if_not_exists(arr, x)

       Writing pythoncode.py

In [8]: %pycat pythoncode.py

       import numpy        def append_if_not_exists(arr, x):            if x not in arr:                arr.append(x)        def some_useless_slow_function():            arr = list()            for i in range(10000):                x = numpy.random.randint(0, 10000)                append_if_not_exists(arr, x)

还有更多请去https://blog.csdn.net/create115721/article/details/79243641

里面有很多有意思的地方。

还有一个比较重要的地方,代码补全。

可以看到是有的,但是似乎不太好用,没有办法选中。参考https://mbd.baidu.com/newspage/data/landingshare?pageType=1&isBdboxFrom=1&context=%7B%22nid%22%3A%22news_9385266057303836218%22%2C%22sourceFrom%22%3A%22bjh%22%7D

. 执行 Shell 命令

在技术或编程文本中,shell 表示使用文本与计算机进行交互的方式。最流行的 Unix shell 是 Bash(Bourne Again SHell),Bash 是 Linux 机器上终端默认的 shell。

在使用 Python 工作时,你会经常在写 Python 代码和使用 shell 命令之间来回切换。例如,你想使用 Python 读取磁盘中的某份文件,而这需要你确认文件名。通常情况下,你需要在终端输入 ls,获得当前目录的所有文件和文件夹列表。但这样来回切换非常繁琐低效。

很炫酷的是,Jupyter 能够执行 Shell 命令,你甚至无需离开浏览器。只需要在 shell 命令前加一个感叹号!,Jupyter 会将其转换为 Bash。在任一命令前加感叹号!,它们就可以在 Python Jupyter Notebook 中运行。

# Listing folder contents>>> !lsmynotebook.ipynb stuff.txt# Getting the current directory>>> !pwd/home/george/github/project_1# Printing from Bash >>> !echo "Pizza is delicious!"Pizza is delicious!

我们还可以将 shell 命令的输出分配给 Python 变量,如下所示:

# Getting the current directory. # The variable "X" now contains ["/home/george/github/project_1"]X = !pwd

这个应该得在linux下。

2. 更换主题

要想安装该插件,你只需在终端中运行以下 pip 命令:

pip install jupyterthemes

运行以下命令,可得到可用的主题列表:

jt -l

截至本文写作时,可选择的主题包括:

chesterishgrade3gruvboxdgruvboxlmonokaioceans16onedorksolarizeddsolarizedl

查看这些主题,如下图所示,我们拥有大量不同的颜色选择。

solarizedd(左),gruvboxl(中),grade3(右)。

Hinterland

代码补全是大部分 IDE 都具备的常见功能,比如 PyCharm。开发者喜欢这个功能,因为这使得他们的工作更加简单,开发者无需记住每一个命令,IDE 会准备好一切。

Hinterland 可在 Jupyter Notebook 内完成代码补全。在键入过程中,你会看到一些代码补全建议。尤其是当你搜索外部库的命令时(示例如下所示)。这简直太方便了!

拆分单元格(Split Cells)

拆分单元格允许开发者并排查看 2 个单元格。当你有两个相关单元格时(比如描述及其对应的图示),这个功能非常方便。

Enter command mode (esc), use shift-s to toggle the current cell to either a split cell or full width.

4. 使用 Qgrid 探索 Dataframes

最后一站是 Qgrid,该工具允许开发者在不使用复杂 Pandas 代码的情况下,探索和编辑数据帧。Qgrid 可在 Jupyter notebook 中以交互的方式渲染 pandas 数据帧,这样你就可以执行一些直观的控制,如滚动、排序和筛选,以及双击单元格编辑数据帧。

我们首先安装 Qgrid:

pip install qgrid

jupyter nbextension enable --py --sys-prefix widgetsnbextension

要想使用 Qgrid 渲染数据帧,开发者只需导入 Qgrid,然后将数据帧输入到 show_grid 函数:

import qgridqgrid_widget = qgrid.show_grid(df, show_toolbar=True)qgrid_widget

这样,你可以对数据帧执行大量交互式操作:

添加和删除行;筛选行;编辑单元格。

将更多参数输入 show_grid 函数可以执行其他交互式操作。关于 Qgrid 的全部功能,参见:https://github.com/quantopian/qgrid。

以上就是强化 Jupyter Notebook 功能的 4 种方法。

可以参考https://blog.csdn.net/langhailove_2008/article/details/79229610

和https://www.itcodemonkey.com/article/8938.html

jt   -t  oceans16   -N  -T

可以更换主题。

参考https://blog.csdn.net/StarCoder_WangYue/article/details/86549269

和https://blog.csdn.net/panshangfeng/article/details/100731033

可以修改字体大小。

jt -t monokai -f fira -fs 13 -cellw 90% -ofs 11 -dfs 11 -T -N

之所以选这个主题是因为感觉和sublime很像。

我似乎没有出现差两个字符的问题。

选中单词高亮可以选择颜色。

代码补全我也测试过了,非常好。

如果以上内容有什么问题,欢迎联系交流。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3